void main() {
//  var p = Person("张三", 20);
//  print(p.name);
//  print(p.age2);
//  p.word();
//  p.age2 = 2000;
//  print(p.age);
//  var p2 = Person.aa("aa");
//  p2.word();

//  Person p = Person.aa("11");
//  p?.word();
//  print(p is int);
//  print("11" is String);
//  print("11" is! String);
//  var s = 11.0 as int;
//  print(s);
//  print(s is int);

//  try {} on FormatException catch (e) {
//    print(e);
//  } catch (e) {
//    print(e);
//  }
}

class Logger {
  String name;

  factory Logger(String name) {
    return Logger._inner("name"); /*必须返回 Logger*/
  }

  Logger._inner(this.name);
}

class Person {
  String _name;
  int age;

  String get name {
    return _name;
  }

  int get age2 {
    /*计算属性*/
    return age * 10;
  }

  set age2(int value) {
    age = value ~/ 10;
  }

  Person(this._name, this.age) {
    print("Person init");
  }

  Person.aa(this._name);

  void word() {
    print("$_name->$age");
  }
}
